package com.zw.mes.module.shipments.mapper;


import com.zw.mes.entity.shipments.InstShipmentsPlanSheet;
import com.zw.mes.entity.shipments.InstShipmentsProductDetail;
import com.zw.mes.entity.shipments.InstShipmentsPurchasedDetail;
import com.zw.mes.module.prodtaskmanager.entity.VwProject;
import com.zw.mes.module.shipments.model.LinshiProductDetail;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface InstShipmentsPlanMapper {

    /**
     * 查询所有未提交的发货计划主单
     * @return
     */
    List<InstShipmentsPlanSheet> selectShipmentsList();

    /**
     * 查询所有项目编号
     * @param proCode
     * @return
     */
    List<VwProject> findProjectByCode(String proCode);
    /**
     * 根据主表ID查询制作件明细表
     */
    List<InstShipmentsProductDetail> selectProductDetail(InstShipmentsProductDetail instShipmentsProductDetail);

    List<LinshiProductDetail> selectLinshiProductDetail(String proCode);

    /**
     *  //获取库中是否有此制作件，如果有数量相加，没有新增
     * @param instShipmentsProductDetail
     * @return
     */
    List<InstShipmentsProductDetail> selectPlanByWid(InstShipmentsProductDetail instShipmentsProductDetail);

    /**
     * 查询外购件发货记录
     * @param instShipmentsProductDetail
     * @return
     */
    List<InstShipmentsPurchasedDetail> selectPurchDetail(InstShipmentsProductDetail instShipmentsProductDetail);

    /**
     * 根据sheetId删除外购件发货明细
     * @param sheetId
     * @return
     */
    int delPurchDetailBySheetId(Integer sheetId);

    /**
     * 修改提交状态
     * @param id
     * @return
     */
    int updateByIdSubmit(Integer id);

    /**
     * 删除主单
     * @param id
     * @return
     */
    int updateByIdDel(Integer id);

    /**
     * 根据ID删除明细单
     * @param id
     * @return
     */
    int updateByIdDelProduct(Integer id);
}
